package hashtable;

import java.util.HashMap;

/**
 * @author "随风Coding"          // 系统用户名（自动填充）
 * @email 1431471764@qq.com  // 替换为你的邮箱（固定或自定义变量）
 * @date 2025/8/17 07:44    // 创建日期和时间（自动填充）
 */
public class ToSum {
    public static int[] toSum(int[] arr, int target) {
        //初始化变量
        int s = 0;
        HashMap<Integer, Integer> hashMap = new HashMap<>();
        //map key是arr[i] value 为 i
        for (int i = 0; i < arr.length; i++) {
            s = target - arr[i];
            if (hashMap.containsKey(s)) {
                return new int[]{hashMap.get(s), i};
            }
            hashMap.put(arr[i], i);
        }
        return new int[]{};
    }

    // 测试用例
    public static void main(String[] args) {

        // 测试用例1：经典情况（2 + 7 = 9）
        int[] nums1 = {2, 7, 11, 15};
        int target1 = 9;
        int[] result1 = toSum(nums1, target1);
        System.out.println("测试用例1结果：[" + result1[0] + ", " + result1[1] + "]");  // 输出 [0, 1]

        // 测试用例2：重复元素（3 + 3 = 6）
        int[] nums2 = {3, 2, 4};
        int target2 = 6;
        int[] result2 = toSum(nums2, target2);
        System.out.println("测试用例2结果：[" + result2[0] + ", " + result2[1] + "]");  // 输出 [1, 2]

        // 测试用例3：完全重复元素（3 + 3 = 6）
        int[] nums3 = {3, 3};
        int target3 = 6;
        int[] result3 = toSum(nums3, target3);
        System.out.println("测试用例3结果：[" + result3[0] + ", " + result3[1] + "]");  // 输出 [0, 1]
    }
}
